import request from "@/utils/request";

/**
 * 获取角色列表
 * @param {Object} params 查询参数
 * @returns {Promise} 请求结果
 */
export function getRoleList(params) {
  return request({
    url: "/system/role/list",
    method: "get",
    params,
  });
}

/**
 * 获取角色详情
 * @param {Number} id 角色ID
 * @returns {Promise} 请求结果
 */
export function getRoleDetail(id) {
  return request({
    url: `/system/role/${id}`,
    method: "get",
  });
}

/**
 * 新增角色
 * @param {Object} data 角色数据
 * @returns {Promise} 请求结果
 */
export function addRole(data) {
  return request({
    url: "/system/role",
    method: "post",
    data,
  });
}

/**
 * 更新角色
 * @param {Object} data 角色数据
 * @returns {Promise} 请求结果
 */
export function updateRole(data) {
  return request({
    url: "/system/role",
    method: "put",
    data,
  });
}

/**
 * 删除角色
 * @param {Number} id 角色ID
 * @returns {Promise} 请求结果
 */
export function deleteRole(id) {
  return request({
    url: `/system/role/${id}`,
    method: "delete",
  });
}

/**
 * 更新角色状态
 * @param {Object} data 角色状态数据
 * @returns {Promise} 请求结果
 */
export function updateRoleStatus(data) {
  return request({
    url: `/system/role/${data.id}/${data.status}`,
    method: "put",
  });
}

/**
 * 获取角色的权限ID列表
 * @param {Number} roleId 角色ID
 * @returns {Promise} 请求结果
 */
export function getRolePermissions(roleId) {
  return request({
    url: `/system/role/permissions/${roleId}`,
    method: "get",
  });
}

/**
 * 更新角色权限
 * @param {Object} data 权限数据
 * @returns {Promise} 请求结果
 */
export function updateRolePermissions(data) {
  return request({
    url: "/system/role/permissions",
    method: "put",
    data,
  });
}

/**
 * 获取当前登录用户的权限列表
 * @param {Object} data 权限数据
 * @returns {Promise} 请求结果
 */
export function selectUserPermissions() {
  return request({
    url: "/role-permission",
    method: "get",
  });
}
